home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 4 / The Arsenal Files 4 (Arsenal Computer).ISO / casm / au116-as.exe / UTIL / STRING.CPP < prev    next >
C/C++ Source or Header  |  1993-12-11  |  2KB  |  103 lines

  1. #include "..\au.hpp"
  2. /************************************************************************/
  3. char *left_pad(char *string, int n)  // add spaces to left until n length
  4. {
  5.     static char string2[30];
  6.  
  7.     int len = strlen(string);
  8.  
  9.     for (int i=0 ; i < n - len ; i++)
  10.         string2[i]=' ';
  11.     string2[i] = '\0';
  12.     strcat(string2,string);
  13.  
  14.     return string2;
  15. }
  16. /************************************************************************/
  17. char *ltrim(char *string)           /* chop of leading spaces from string */
  18. {
  19.     while (string[0]<=' ' && string[0]>0)
  20.         strcpy(string,string+1);
  21.     return string;
  22. }
  23. /************************************************************************/
  24. char *right_pad(char *string, int n)  // add spaces to right until n length
  25. {
  26.     static char string2[30];
  27.  
  28.     int len = strlen(string);
  29.  
  30.     strcpy(string2,string);
  31.  
  32.     for (int i=len ; i < n ; i++)
  33.         string2[i]=' ';
  34.     string2[i] = '\0';
  35.  
  36.     return string2;
  37. }
  38. /************************************************************************/
  39. char *rtrim(char *string)          /* chop of trailing spaces from string */
  40. {
  41.     int pos = strlen(string)-1;
  42.     char c;
  43.  
  44.     while (pos >= 0)
  45.     {
  46.         c = string[pos];
  47.         if (c != ' ' && c != '\t')
  48.             break;
  49.         pos--;
  50.     }
  51.     string[pos+1] = '\0';
  52.     return string;
  53. }
  54. /***********************************************************************/
  55. void split_string(char *string1, char *string2)
  56. {
  57.     int i=0;
  58.  
  59.     while (TRUE)
  60.     {
  61.         if (string1[i]<=' ')             /* should get space,tab and NULL */
  62.         {
  63.             ltrim(string1);
  64.             string2[i]=NULL;
  65.             return;
  66.         }
  67.         string2[i]=string1[i];
  68.         string1[i]=' ';
  69.         i++;
  70.     }
  71. }
  72. /************************************************************************/
  73. char *safe_string_copy(char *target, char *source, int n, BYTE trim)
  74. {
  75.     strncpy(target, source, n-1);
  76.     source[n-1] = '\0';
  77.     if (trim)
  78.     {
  79.         ltrim(target);
  80.         rtrim(target);
  81.     }
  82.     return target;
  83. }
  84. /**************************************************************************/
  85. void string_replace(char *string, char *oldStr, char *newStr)
  86. {
  87.     char *ptr;
  88.     int lenOld, lenNew;
  89.  
  90.     lenOld = strlen(oldStr);
  91.     lenNew = strlen(newStr);
  92.  
  93.     while ((ptr = strstr(string, oldStr)) != NULL)
  94.     {
  95.         if (lenNew > lenOld)
  96.             memmove(ptr + lenNew - lenOld, ptr, strlen(ptr)+1);
  97.         else
  98.             memmove(ptr, ptr + lenOld - lenNew, strlen(ptr + lenOld - lenNew)+1);
  99.         strncpy(ptr, newStr, lenNew);
  100.     }
  101.     return;
  102. }
  103.